#ifndef KEYBOARDHANDLER_H
#define KEYBOARDHANDLER_H

#include "devices\StateHandler.h"
#include "InputPoint.h"
#include <stack>

class KeyboardHandler : public StateHandler {
    Q_OBJECT
public:
    KeyboardHandler();

public slots:
    void slotKeyStroke(int key);
    void slotUpdateInputPoint(int id, InputState state);


private:
		int  m_current;

        //General Methods to change state
        void addInputPoint();
        void removeInputPoint();
        void update(int id, double dx, double dy, double dz);
        void select(int id);
        void deselect(int id);
        void push(int id);
        void pull(int id);

        //Device Specific
        void changeFocusPrimary();
        void changeFocusSecondary();
};

#endif // KEYBOARDHANDLER_H
